#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main()
{
  int fd = open("./myfile", O_RDONLY);
  if(fd < 0)
  {
    perror("open");
    return 1;
  }

  dup2(fd, 0);
  char buffer[64];
  scanf("%s", buffer);
  printf("%s\n", buffer);
  return 0;
}

//int main()
//{
//  int fd = open("./myfile", O_WRONLY | O_CREAT, 0664);
//  if(fd < 0)
//  {
//    perror("open");
//    return 1;
//  }
//
//  dup2(fd, 1);
//  printf("hello wrold\n");
//  fprintf(stdout, "hello world\n");
//  fputs("hello wrold\n", stdout);
//  return 0;
//}

//int main()
//{
//  close(1);
//  int fd = open("./myfile",O_CREAT|O_WRONLY|O_APPEND, 0644);//O_OPPEND追加
//  if(fd < 0)
//  {
//    perror("open");
//    return 1;
//  }
//
//  printf("fd: %d\n", fd);
//  fflush(stdout);
//  return 0;
//}

//#include <stdio.h> 
//#include <sys/types.h>
//#include <sys/stat.h>
//#include <fcntl.h>
//#include <unistd.h>

//int main()
//{
//  printf("stdin:%d\n", stdin->_fileno);
//  printf("stdout:%d\n", stdout->_fileno);
//  printf("stderr:%d\n", stderr->_fileno);
//
//  FILE* fp = fopen("./myfile", "r");
//  if(NULL == fp)
//  {
//    perror("fopen");
//    return 0;
//  }
//  printf("fp: %d\n", fp->_fileno);
//  return 0;
//
//}

//int main()
//{
//  close(1);
//  int fd = open("./myfile", O_CREAT | O_WRONLY, 0644);
//  if(fd < 0)
//  {
//    printf("open ");
//    return 1;
//  }
//  printf("fd: %d\n", fd);
//  fflush(stdout);
//  close(fd);
//  return 0;
//}
